package com.ce.pms.occupation.service;

import com.ce.pms.base.service.IPmsBaseService;
import com.ce.pms.occupation.vo.ThingEntrustQueryConditionVO;
import com.ce.pms.occupation.vo.ThingEntrustVO;
import com.ce.pms.occupation.vo.ThingGivebackVO;
import com.ce.pms.occupation.vo.ThingHandoverVO;
import com.sitechasia.webx.core.support.Page;


/**
 * 物品移交服务接口
 * @author 王浩羽
 *
 */
public interface IThingHandoverService extends IPmsBaseService
{

  /**
   * 功能描述: 新增移交物品 <br>
   * @param thingHandoverVO
   * @return
   * Create author: 王浩羽 <br>
   * Create on:Jan 7, 2009  <br>
   * Edit author:  <br>
   * Edit on:    <br>
   * Why:     <br>
   */
   public ThingHandoverVO addThingHandover(ThingHandoverVO thingHandoverVO);

   /**
    * 功能描述: 根据ID获取物品移交VO <br>
    * @param thingHandoverId
    * @return
    * Create author: 王浩羽 <br>
    * Create on:Jan 7, 2009  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public ThingHandoverVO getHandoverById(Long thingHandoverId);

   
   /**
    * 功能描述: 添加物品托管 <br>
    * @param thingEntrustVO
    * @return
    * Create author: 王浩羽 <br>
    * Create on:Jan 8, 2009  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public ThingEntrustVO addThingEntrust(ThingEntrustVO thingEntrustVO);
   
   /**
    * 功能描述: 修改物品托管 <br>
    * @param thingEntrustVO
    * @return
    * Create author: 王浩羽 <br>
    * Create on:Jan 8, 2009  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public ThingEntrustVO editThingEntrust(ThingEntrustVO thingEntrustVO);
   
  /**
   * 功能描述: 删除指定的物品托管 <br>
   * @param thingEntrustId
   * Create author: 王浩羽 <br>
   * Create on:Jan 8, 2009  <br>
   * Edit author:  <br>
   * Edit on:    <br>
   * Why:     <br>
   */
   public void deleteThingEntrust(Long thingEntrustId);
   
  /**
   * 功能描述: 获得指定物品托管详细信息 <br>
   * @param thingEntrustId
   * @return
   * Create author: 王浩羽 <br>
   * Create on:Jan 8, 2009  <br>
   * Edit author:  <br>
   * Edit on:    <br>
   * Why:     <br>
   */
   public ThingEntrustVO getThingEntrustInfo(Long thingEntrustId);
   
   /**
    * 功能描述:处理物品归还  <br>
    * @param thingGivebackVO
    * Create author: 王浩羽 <br>
    * Create on:Jan 8, 2009  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public void handleThingGiveback(ThingGivebackVO thingGivebackVO);
   
  /**
   * 功能描述: 查询物品托管列表 <br>
   * @param queryCondition
   * @return page的result为  类型的List&lt;ThingEntrustQueryConditionVO&gt; <br>
   * Create author: 王浩羽 <br>
   * Create on:Jan 8, 2009  <br>
   * Edit author:  <br>
   * Edit on:    <br>
   * Why:     <br>
   */
   public Page queryThingEntrustList(ThingEntrustQueryConditionVO queryCondition);
   
   /**
    * 功能描述: 根据身份验证ID获取移交物品 <br>
    * @param identityId
    * @return
    * Create author:yandawei <br>
    * Create on:2009-1-8  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public ThingHandoverVO getHandoverByIndentityId(Long identityId);
   
   /**
    * 功能描述: 根据物品ID查找物品归还信息 <br>
    * @param thingEntrustId
    * @return
    * Create author: 王浩羽 <br>
    * Create on:Jan 14, 2009  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public ThingGivebackVO getThingGivebackByThingEntrustId(Long thingEntrustId);
   
   
	/**
	 * 功能描述: 是否容许修改物品托管 <br>
	 * 条件：物品归还后不能再修改
	 * @param thingEntrustId
	 * @return Create author: 王浩羽 <br>
	 *         Create on:Jan 8, 2009 <br>
	 *         Edit author: <br>
	 *         Edit on: <br>
	 *         Why: <br>
	 */
	public boolean isAllowEditThingEntrust(Long thingEntrustId);
	
	/**
	 * 功能描述: 是否容许删除物品托管 <br>
	 * 注：没有限制条件，删除只做逻辑删除
	 * @param thingEntrustId
	 * @return Create author: 王浩羽 <br>
	 *         Create on:Jan 8, 2009 <br>
	 *         Edit author: <br>
	 *         Edit on: <br>
	 *         Why: <br>
	 */
	public boolean isAllowDeleteThingEntrust(Long thingEntrustId);
}
